G07-PaintingCube.mws

 

     Quantos Caminhos Existem para Pintar um Cubo?


Uma exploração de cores e simetrias do cubo

[Direções : Execute primeiramente a seção Code Resource. Embora não haja output imediato, essas definições serão usadas posteriormente nessa worksheet.]

  0. Código

>    restart;

>    with(plots):

Warning, the name changecoords has been redefined

>    #----------------------------------------------
#  1 is pink, 2 is green, 3 is blue, 4 is yellow, 5 is red, 6 is white

c1 := COLOR(RGB, .97,.58,.67):
c2 := COLOR(RGB,.2,.7,.2):
c3 := COLOR(RGB,.3,.3,.7):
c4 := COLOR(RGB,.99,.7, 0):
c5 := COLOR(RGB,.9, .1, .1):
c6 := COLOR(RGB,.85,.8, .7):
C1 := 'style=patchnogrid, color = c1':
C2 := 'style=patchnogrid, color = c2':
C3 := 'style=patchnogrid, color = c3':
C4 := 'style=patchnogrid, color = c4':
C5 := 'style=patchnogrid, color = c5':
C6 := 'style=patchnogrid, color = c6':

d1 := COLOR(RGB, .8,.5,.6):
d2 := COLOR(RGB, .1,.4,.1):
d3 := COLOR(RGB, .2,.2,.4):
d4 := COLOR(RGB, .95,.6, 0):
d5 := COLOR(RGB, .72, 0, 0):
d6 := COLOR(RGB, .72,.64, .5):
D1 := 'style=patchnogrid, color = d1':
D2 := 'style=patchnogrid, color = d2':
D3 := 'style=patchnogrid, color = d3':
D4 := 'style=patchnogrid, color = d4':
D5 := 'style=patchnogrid, color = d5':
D6 := 'style=patchnogrid, color = d6':


cb := 'COLOR(RGB,.1,.1,.1)':
ls := 'STYLE(LINE),THICKNESS(2),LINESTYLE(3)':

#----------------------------------------------

>    #=============================================================
ColoredSheets := proc( fr, bk, le, ri, tp, bt )
  # colors for : front, back, left, right, top, bottom ....
  local   k,Z,PP,y;
  
  for k from 1 to 6 do
  y := args[k];
  Z := C||y;    
  PP||k := polygonplot( [[k-1,0],[k,0],[k,k],[k-1,k],[k-1,0]],        Z) :
  QQ||k := polygonplot( [[k-1,0],[k,0],[k,k],[k-1,k],[k-1,0]], color = black) :
  od;

  display( [seq(PP||k, k = 1..6),seq(QQ||k, k = 1..6)],
            scaling=constrained,axes=none );
end proc:

>   

>    #=============================================================
ColorCubeOpen := proc( fr, bk, le, ri, tp, bt )
  # colors for : front, back, left, right, top, bottom ....
  local   Fr,Bk,Le,Ri,Tp,Bt,x,y,R,theta,aa,Z, Bf,Rf, clb;
  clb := 'color = COLOR(RGB,.1,.1,.1)':
  R := .6;  theta := Pi/4;
  x := evalf(R*cos(theta));   y := evalf(R*sin(theta));
  aa:= .25;
  Z := C||fr;
  Fr := polygonplot( [[0,0],[1,0],[1,1],[0,1],[0,0]],        Z) :
  Z := D||bk;
  Bk := polygonplot( [[-x,y],[1-x,y],[1-x,y +1],[-x,y+1],[-x,y]],     Z):
  Z := C||le;
  Le := polygonplot( [[0,0],[-x,y],[-x,y +1],[0,1],[0,0]],   Z):
  Z := D||ri;
  Ri := polygonplot( [[1,0],[1-x,y],[1-x,y +1],[1,1],[1,0]], Z):
  Z := C||tp;
  Tp := polygonplot( [[-x,y+1],[1-x,y+1],[1,y+y+1],[0,y+y+1],[-x,y+1]], Z):
  Z := D||bt;
  Bt := polygonplot( [[-aa,y-1+aa],[1-aa,y-1+aa],[1-x,y ],[-x,y],
                       [-aa,y-1+aa]],     Z ):

  Bf := polygonplot( [[1-x,1],[1-x,y +1]],clb):
  Rf := polygonplot( [[0,0],[0,1]],clb):

  display( [ Fr,Le,Tp,Bt,Ri,Bk,Bf,Rf
], scaling = constrained,axes=none );
end proc:

>    #=============================================================
ColorCube := proc( fr, bk, le, ri, tp, bt )
    local    XY0,XY1,XZ0,XZ1,YZ0,YZ1,Z;
    Z := d||bk;
    XY0 := PLOT3D( POLYGONS([[0,0,0],[1,0,0],[1,1,0],[0,1,0]]),
                   STYLE(PATCH), Z):
    Z := c||fr;
    XY1 := PLOT3D( POLYGONS([[0,0,1],[1,0,1],[1,1,1],[0,1,1]]),
                   STYLE(PATCH), Z):

    Z := d||le;
    XZ0 := PLOT3D( POLYGONS([[0,0,0],[1,0,0],[1,0,1],[0,0,1]]),
                   STYLE(PATCH), Z):
    Z := c||ri;
    XZ1 := PLOT3D( POLYGONS([[0,1,0],[1,1,0],[1,1,1],[0,1,1]]),
                   STYLE(PATCH), Z):

    Z := d||bt;
    YZ0 := PLOT3D( POLYGONS([[0,0,0],[0,1,0],[0,1,1],[0,0,1]]),
                   STYLE(PATCH), Z):
    Z := c||tp;
    YZ1 := PLOT3D( POLYGONS([[1,0,0],[1,1,0],[1,1,1],[1,0,1]]),
                   STYLE(PATCH), Z):
    display(XY0,XY1,XZ0,XZ1,YZ0,YZ1, scaling = constrained);
end proc:

>    ColorCubeRotation := proc( case )
    local    XY0,XY1,XZ0,XZ1,YZ0,YZ1,b,d,A1,A2,O;    
    XY0 := PLOT3D( POLYGONS([[0,0,0],[1,0,0],[1,1,0],[0,1,0]]),
                   STYLE(PATCH), c1):
    XY1 := PLOT3D( POLYGONS([[0,0,1],[1,0,1],[1,1,1],[0,1,1]]),
                   STYLE(PATCH), c1):
    XZ0 := PLOT3D( POLYGONS([[0,0,0],[1,0,0],[1,0,1],[0,0,1]]),
                   STYLE(PATCH), c5):
    XZ1 := PLOT3D( POLYGONS([[0,1,0],[1,1,0],[1,1,1],[0,1,1]]),
                   STYLE(PATCH), c5):
    YZ0 := PLOT3D( POLYGONS([[0,0,0],[0,1,0],[0,1,1],[0,0,1]]),
                   STYLE(PATCH), c6):
    YZ1 := PLOT3D( POLYGONS([[1,0,0],[1,1,0],[1,1,1],[1,0,1]]),
                   STYLE(PATCH), c6):
    b := 1.65;      d := 1-b;
    #------------ face axes -----------------------------
    if (case = 1) then
      A1 := PLOT3D( CURVES( [[.5, .5,  1],[.5,.5, b]]), cb,ls):
      A2 := PLOT3D( CURVES( [[.5, .5,  0],[.5,.5, d]]), cb,ls):
      O:=[30,72]; fi;
    if (case = 2) then
      A1 := PLOT3D( CURVES( [[.5,  1, .5],[.5, b,.5]]), cb,ls):
      A2 := PLOT3D( CURVES( [[.5,  0, .5],[.5, d,.5]]), cb,ls):
      O:=[38,72]; fi;
    if (case = 3) then
      A1 := PLOT3D( CURVES( [[ 1, .5, .5],[ b, .5,.5 ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 0, .5, .5],[ d, .5,.5 ]]), cb,ls):
      O:=[50,72]; fi;
    #------------ EDGES -----------------------------
    if (case = 4) then
      A1 := PLOT3D( CURVES( [[ 1, .5, 1], [ b, .5, b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 0, .5, 0], [ d, .5, d ]]), cb,ls):
      O:=[44,72]; fi;
    if (case = 5) then
      A1 := PLOT3D( CURVES( [[ 0, .5, 1], [ d, .5, b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 1, .5, 0], [ b, .5, d ]]), cb,ls):
      O:=[44,72]; fi;
    if (case = 6) then
      A1 := PLOT3D( CURVES( [[.5, 1,  1], [.5, b,  b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[.5, 0,  0], [.5, d,  d ]]), cb,ls):
      O:=[44,72]; fi;
    if (case = 7) then
      A1 := PLOT3D( CURVES( [[ .5, 0, 1], [ .5, d, b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ .5, 1, 0], [ .5, b, d ]]), cb,ls):
      O:=[44,72]; fi;
    if (case = 8) then
      A1 := PLOT3D( CURVES( [[ 1, 1, .5], [ b, b, .5 ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 0, 0, .5], [ d, d, .5 ]]), cb,ls):
      O:=[16,82]; fi;
    if (case = 9) then
      A1 := PLOT3D( CURVES( [[ 0, 1, .5], [ d, b, .5 ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 1, 0, .5], [ b, d, .5 ]]), cb,ls):
      O:=[30,65]; fi;
    #------------ CORNERS  -----------------------------
    if (case = 10) then
      A1 := PLOT3D( CURVES( [[ 1, 1, 1], [ b, b, b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 0, 0, 0], [ d, d, d ]]), cb,ls):
      O:=[20,80]; fi;
    if (case = 11) then
      A1 := PLOT3D( CURVES( [[ 1, 0, 1], [ b, d, b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 0, 1, 0], [ d, b, d ]]), cb,ls):
      O:=[18,72]; fi;
    if (case = 12) then
      A1 := PLOT3D( CURVES( [[ 0, 1, 1], [ d, b, b ]]), cb,ls):
      A2 := PLOT3D( CURVES( [[ 1, 0, 0], [ b, d, d ]]), cb,ls):
      O:=[20,80]; fi;
 
    #-------------------------------------------------

    display(XY0,XY1,XZ0,XZ1,YZ0,YZ1,A1,A2,
            scaling = constrained, orientation = O);
end proc:

>   

  1. Pintando Outro Objeto de Seis Lados

Ele será apresentado, depois de uma exploração fascinante, colorir envolve a sutilidade da simetria de um cubo. Antes de chegarmos a tudo isso, vamos olhar uma simples figura que também tem seis faces, mas não "está sujeita" a simetrias que complicam o problema.

>    ColoredSheets( 1,2,4,1,3,2);

[Maple Plot]


Cada uma das superfícies nesse caso é de um tamanho diferente, e girar ou mover a forma irá resultar em uma forma que pareça a mesma.

     
1. Número de Maneiras de Colorir :   Usando 1 Cor

Usando uma única cor, só existe uma maneira de pintar a figura.

>    1^6;

1

>    ColoredSheets( 3,3,3,3,3,3);

[Maple Plot]



   
2. Número de Maneiras de Pintar :   Usando 2 Cores
Cada face tem duas opções para uma cor. Existem seis faces, então 2 x 2 x 2 x 2 x 2 x 2 = 2^6. Vamos olhar várias destas 64.

>    2^6;

64

>    ColoredSheets( 3,3,3,4,4,4 );

[Maple Plot]

>    ColoredSheets( 3,4,3,4,3,4 );

[Maple Plot]

>    ColoredSheets( 3,4,3,4,4,4 );

[Maple Plot]

>    ColoredSheets( 3,4,4,3,4,3);

[Maple Plot]

>    ColoredSheets( 4,4,3,4,3,4 );

[Maple Plot]


   
3. Número de Maneiras de Pintar :   Usando 3 Cores

Cada face tem três opções para uma cor

>    3^6;

729

>    ColoredSheets( 1,1,2,2,3,3);

[Maple Plot]

>    ColoredSheets( 3,3,1,1,2,2);

[Maple Plot]

>    ColoredSheets( 1,2,3,1,2,3 );

[Maple Plot]

>    ColoredSheets( 1,2,1,3,1,1);

[Maple Plot]


   
4. Número de Maneiras de Pintar :   Usando 4 Cores

Cada face tem quatro opções para uma cor

>    4^6;

4096

>    ColoredSheets( 3, 4, 5, 6, 4, 3);

[Maple Plot]

>    ColoredSheets( 5,5,5,4,6,3);

[Maple Plot]


   
5. Número de Maneiras de Pintar :   Usando 5 Cores

Cada face oferece opções para uma cor.

>    5^6;

15625

>    ColoredSheets( 1,2,3,4,5,2);

[Maple Plot]

>    ColoredSheets( 4,3,1,2,1,5);

[Maple Plot]



   
6. Número de Maneiras de Pintar :   Usando 6 Cores

Usando uma única cor, só existe uma maneira de pintar a figura.

>    6^6;

46656

>    ColoredSheets(1, 2, 3, 4, 5, 6);

[Maple Plot]

>    ColoredSheets(1, 6, 3, 5, 2, 4);

[Maple Plot]

  2. Pintando um Cubo


Vamos agora olhar um cubo. Cubos também tem seis lados, mas eles são formas tri-dimensionais e não figuras planas. Para tornar fácil ver todos os lados em uma única olhada nós podemos usar esse esquema de cubo onde as faces do topo e do meio são um pouco abertas, para que nós possamos ver todos os seis lados  de uma vez.

>    ColorCubeOpen( 6,6,6,6,6,6);

[Maple Plot]


As faces de um cubo podem ser pintadas de várias maneiras também. De fato qualquer combinação usada acima pode também ser usada em um cubo. (Você pode querer pegar a imagem abaixo e girá-la para olhar todas as seis faces.)

>    ColorCube( 1,2,3,4,5,6 );
`Grab this cube with the mouse, and turn it to see the other sides`;

[Maple Plot]

`Grab this cube with the mouse, and turn it to see the other sides`


Aqui estão alguns cubos coloridos. Por favor examine-os de todos os ângulos e compare com as tri-dimensionais.

>    ColorCube( 1,2,3, 1,2, 3 );
`Grab this cube with the mouse, and turn it to see the other sides`;

[Maple Plot]

`Grab this cube with the mouse, and turn it to see the other sides`

>    ColorCubeOpen( 1,2,3,1,2,3);

[Maple Plot]


 

>    ColorCube( 3,6,5, 2,3,5 );
`Grab this cube with the mouse, and turn it to see the other sides`;

[Maple Plot]

`Grab this cube with the mouse, and turn it to see the other sides`

>    ColorCubeOpen( 3,6,5, 2,3,5 );

[Maple Plot]

  3. Problemas ao Colorir os Cubos


Vamos olhar essas três formas coloridas com as quais nós trabalhamos acima. Observe que cada uma das três tem dois lados amarelos e 4 lados azuis. Mas os três resultados são completamente diferentes.

>    ColoredSheets( 6,6,2,2,3,3 );

[Maple Plot]

>    ColoredSheets( 2,2,3,3,6,6 );

[Maple Plot]

>    ColoredSheets( 3,3,6,6,2,2 );

[Maple Plot]



Agora olhe esses três cubos coloridos similares. Existe algo similar entre eles. Você pode explicar a existência de atributos comuns?

>    ColorCubeOpen( 6,6,2,2,3,3 );

[Maple Plot]

>    ColorCubeOpen( 2,2,3,3,6,6 );

[Maple Plot]

>    ColorCubeOpen( 3,3,6,6,2,2 );

[Maple Plot]


As três colorações diferentes da figura plana eram três cores distintas. No entanto, as três cores do cubo que nós realizamos são as mesmas - ja que você pode girar um cubo pintado da primeira das três maneiras, para obter qualquer um dos outros dois. Outra maneira de olhá-lo, é se você tem três cubos e os pintou das três maneiras que fizemos acima, e esses cubos foram colocados em uma garrafa e depois agitados, e então colocados em cima de uma mesa, você poderia discernir qual cubo é qual? Não.

ã

  4. Rotações do Cubo


Fica fácil se nós examinarmos algumas das maneiras pelas quais podemos girar um cubo. Isso é importante porque duas colorações diferentes do cubo podem se tornar equivalentes, depois de rotações.

Cada rotação tem um eixo de rotação. Cada um dos diagrmas tridimensionais abaixo podem ser organizados usando o mouse. Tente girar o cubo, mantendo o eixo indicado fixo.

        I. Eixos através de Faces Opostas

>    ColorCubeRotation(1);

[Maple Plot]

>    ColorCubeRotation(2);

[Maple Plot]

>    ColorCubeRotation(3);

[Maple Plot]


Que tipo de cores podem ser fixadas por um ou mais desses tipos de rotação?
 - Se o eixo de rotação passa através de duas faces opostas, e as faces restantes são as mesmas cores, então 1, 2, ou 3 rotações produzem a mesma cor.
- Se uma das faces restantes é uma cor, e as outras três outra, então uma rotação dupla desse tipo irá produzir o mesmo resultado

- Se pares opostos de quatro cores remanescentes são da mesma cor, rotações duplas também fixam essa coloração


        II. Eixos Através de Extremidades Opostas

>    ColorCubeRotation(4);

[Maple Plot]

>    ColorCubeRotation(5);

[Maple Plot]

>    ColorCubeRotation(6);

[Maple Plot]

>    ColorCubeRotation(7);

[Maple Plot]

>    ColorCubeRotation(8);

[Maple Plot]

>    ColorCubeRotation(9);

[Maple Plot]


Que tipos de coloração poderiam ser fixadas por um ou mais destes tipos de rotaço?

Um tipo de cor fixado por esse tipo de rotação é quando as duas faces que tocam a extremidade a qual o eixo passa são da mesma cor, e as duas faces opostas são a mesma, e então dois lados remanescentes são o mesmo.


        III. Eixos Através de Vértices Opostos

>    ColorCubeRotation(10);

[Maple Plot]

>    ColorCubeRotation(11);

[Maple Plot]

>    ColorCubeRotation(12);

[Maple Plot]


 
Que tipos de coloração poderiam ser fixadas por um ou mais destes tipos de rotaço?

Se essas três faces que tocam cada vértice do eixo são as mesmas, então a coloração é a mesma.

  5. Pintando um Cubo com 1 ou 2 Cores


 
     
1. Número de Maneiras de Colorir :   Usando 1 Cor

Usando apenas uma cor, existe uma maneira de pintar a figura.

>    1^6;

1

>    ColorCubeOpen( 4,4,4,4,4,4);

[Maple Plot]

>    ColorCubeOpen( 1,1,1,1,1,1);

[Maple Plot]



   
2. Número de Maneiras de Colorir :   Usando 2 Cores

Cada face tem duas opções para uma cor. De primeiro impacto, pode parecer que existem  2 x 2 x 2 x 2 x 2 x 2 = 2^6 colorações diferentes como nós vimos antes. No entanto, não é verdade porque várias colorações não diferem das outras - depois de rotações.

>    2^6;

64



    1-5

Por exemplo, existem duas maneiras de pintar um lado amarelo, e cinco lados azuis. Todas as seis cores são equivalentes.

>    ColorCubeOpen(4,3,3,3,3,3);

[Maple Plot]

>    ColorCubeOpen(3,3,3,4,3,3);

[Maple Plot]

>    ColorCubeOpen(3,3,3,3,4,3);

[Maple Plot]




    2-4

Quando dois lados são pintados de uma cor, e os quatro remanescentes de outra cor, um número de cores que parecem ser diferentes são os mesmos. Por exemplo, se os dois lados verdes estão sempre nas faces opostas... Quantos desse primeiro tipo são equivalentes?

>    ColorCubeOpen( 2,2,1,1,1,1 );

[Maple Plot]

>    ColorCubeOpen( 1,1,2,2,1,1);

[Maple Plot]

>    ColorCubeOpen( 1,1,1,1,2,2 );

[Maple Plot]


Não existe outro tipo de coloração que não seja equivalente a estes acima mas os quais também tem dois lados verdes e quatro lados roxos - onde os dois lados verdes formam uma extremidade. Quantos destes são equivalentes?

>    ColorCubeOpen( 2,1,1,2,1,1);

[Maple Plot]

>    ColorCubeOpen( 1,1,1,2,1,2);

[Maple Plot]



    3-3

E três lados brancos e 3 lados vermelhos? Quantas colorações diferentes são possíveis que não sejam equivalentes?

>    ColorCubeOpen(6,5,6,5,6,5);

[Maple Plot]

>    ColorCubeOpen(5,5,5,6,6,6);

[Maple Plot]


Pintar uma cor em quatro lados e outra cor em dois foi feito acima, tão bem como pintar cinco e uma.
 

  6. Pintando um Cubo com  3 Cores


Cada face tem três opções para uma cor mas novamente existem simetrias. Quantas cores não equivalentes podem ser encontradas?

    1-1-4

>    ColorCubeOpen( 1,3,2,3,3,3);

[Maple Plot]

  
   1-2-3

>    ColorCubeOpen( 1,3,2,2,3,3);

[Maple Plot]

>    ColorCubeOpen( 1,2,2,3,3,3);

[Maple Plot]


   2-2-2

Cada par de  cores pode ser pintado em faxes opostas.

>    ColorCubeOpen( 1,1,2,2,3,3 );

[Maple Plot]


Ou cada par de lados da mesma cor podem compartilhar uma extremidade.

>    ColorCubeOpen( 1,2,1,3,3,2 );

[Maple Plot]

 
Existe alguma outra maneira de colorir dois lados com cada uma das três cores? Existe uma maneira de ter apenas um par de lados opsotos com a mesma cor?

>    ColorCubeOpen( 1,2,1,2,3,3 );

[Maple Plot]


 

  7. Pintando um Cubo com 4 Cores


Quantas cores equivalentes podem ser encontradas?

    1-1-1-3

>    ColorCubeOpen( 6,4,5,3,3,3);

[Maple Plot]

>    ColorCubeOpen( 6,3,5,3,3,4);

[Maple Plot]




    1-1-2-2

>    ColorCubeOpen( 6,3,4,4,5,5);

[Maple Plot]

>    ColorCubeOpen( 6,5,3,4,5,4);

[Maple Plot]



Cada face tem três opções para uma cor mas novamente existem simetrias. Quantas cores não equivalentes podem ser encontradas?

  8. Pintando um Cubo com 5 Cores


Quantas cores não equivalentes podem ser encontradas?

    1-1-1-1-2

>    ColorCubeOpen(1,2,3,4, 5,5);

[Maple Plot]

>    ColorCubeOpen(1,5,3,5, 4,2);

[Maple Plot]




 

  9. Pintando um Cubo com 6 Cores



Cada face tem três opções para uma cor mas existem simetrias. Quantas cores não equivalentes podem ser encontradas?

    1-1-1-1-1-1

>    ColorCubeOpen( 1,2,3,4,5,6);

[Maple Plot]

>    ColorCubeOpen( 1,2,4,3,5,6);

[Maple Plot]

>   

>   


 

  10. Número Total de Colorações de um Cubo


Não está claro após a discussão acima, mas existem 57 maneiras de pintar um cubo com três cores. Isso mostrado com um resultado extraído da mais avançada matemática (álgebra abstrata) chamada teorema Burnsides', o qual permite contar as colorações baseado nas transformações que fixam a quantidade determinada de colorações.